<template>
  <div id="app">
    <div id="nav">
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>
    </div>
    <keep-alive :include="KeepAlive">
      <router-view />
    </keep-alive>
  </div>
</template>
<script>
export default {
  data() {
    return {
      KeepAlive: "",
    };
  },
  created() {
    this.getKeepAliveView();
  },
  methods: {
    getKeepAliveView() {
      const self = this;
      requestAnimationFrame(function fun() {
        let list = self.$router.options.routes
          .filter((item) => {
            return item.meta && item.meta.KeepAlive;
          })
          .map((item) => {
            return item.component.name;
          });
        self.KeepAlive = "," + list.join(",");
        // requestAnimationFrame(fun)
        // console.log(list, self.KeepAlive);
      });
    },
  },
};
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

#nav {
  padding: 30px;
}

#nav a {
  font-weight: bold;
  color: #2c3e50;
}

#nav a.router-link-exact-active {
  color: #42b983;
}
</style>
